#include "luaex.h"
#include "string.h"
 #pragma comment(lib,"lua5.1.lib")
 
LuaEx*      LuaEx::I =NULL;
lua_State*  LuaEx :: pL = NULL;

LuaEx::LuaEx(void)
 {
	pL = lua_open();
	luaL_openlibs(pL);
	/*luaopen_base(L);
	luaopen_io(L);
	luaopen_string(L)*/;
 }
 
LuaEx::~LuaEx(void)
 {
	lua_close(pL);
 }
 
bool LuaEx::LoadFile(const char* filename)
 {  
	if(I = NULL)
	{
		I = new LuaEx();
	}
	if(filename != NULL)
	{
		luaL_loadfile(pL, filename);
		lua_pcall(pL, 0, 0, 0);
		return false;
	}
	return true;
 }
 
LPSTR LuaEx::GetString(const char* str)
 {
	lua_getglobal(pL, str);
	if (lua_isstring(pL, -1))
	{
		return (LPSTR)lua_tostring(pL, -1);
	}
	return NULL;
 }
 
int LuaEx::GetInt(const char* str)
 {
	lua_getglobal(pL, str);
	if (lua_isnumber(pL, -1))
	{
		return (int)lua_tointeger(pL, -1);
	}
	return NULL;
 }
 
double LuaEx::GetDouble(const char* str)
 {
	lua_getglobal(pL, str);
	if (lua_isnumber(pL, -1))
	{
		return (double)lua_tonumber(pL, -1);
	}
	return 0.0;
 }
 
bool LuaEx::GetBoolean(const char* str)
 {
	lua_getglobal(pL, str);
	if (lua_isboolean(pL, -1))
	{
		return (bool)lua_toboolean(pL, -1);
	}
	return false;
 }


 